﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using KBManagement.Library;
using KBManagement.BIZ;
using KBManagement.DAL;

namespace KBManagement
{
    public partial class AddTipMoney : Form
    {
        private Employee emp;
        KBSQLClassDataContext context;
        TransactionLog transactionLog;
        public AddTipMoney(Employee emp)
        {
            transactionLog = new TransactionLog();
            context = new KBSQLClassDataContext();
            this.emp = emp;
            InitializeComponent();
            lblNameEmp.Text = emp.FullName;
            lblIdEmp.Text = emp.ID;
        }

        private void btnOk_Click(object sender, EventArgs e)
        {
            bool isValid = validate();
            if (isValid)
            {
                try
                {
                    int month = DateTime.Now.Month;
                    int year = DateTime.Now.Year;
                    Pay_Salary paySalary = context.Pay_Salaries.SingleOrDefault(ps => ps.PayMonth == month && ps.PayYear == year);
                    if (paySalary == null)
                    {
                        MessageBox.Show("Bảng lương tháng " + month + " năm " + year + "chưa được tạo liên hệ người có trách nhiệm để tạo bảng lương");
                        return;
                    }
                    var tip = new Tip
                    {
                        Tip_Date = dateTimePicker1.Value,
                        Tip_Money = Convert.ToDecimal(txtPrice.Text),
                        PsId = paySalary.PsId
                    };
                    context.Tips.InsertOnSubmit(tip);
                    context.SubmitChanges();
                    transactionLog.TransactionLogCommon("Nhân viên A thêm mới "+txtPrice.Text+" VND tiền tip của nhân viên '" + lblNameEmp.Text + "' nhận được vào ngày =" + dateTimePicker1.Text + " vào lúc "+DateTime.Now);
                    txtPrice.Text = "";
                    Close();
                }
                catch (Exception)
                {
                    MessageBox.Show("Thông tin bạn nhập có thể không lưu được vì xảy ra lỗi.Lỗi đã được hệ thống ghi lại và chờ xử lý");
                }
            }
        }


        public Boolean validate()
        {
            if (Utils.CreateInstance().isNull(txtPrice.Text))
            {
                MessageBox.Show("Xin mời nhập vào số tiền");
                return false;
            }
            if (!Utils.CreateInstance().isNumberDouble(txtPrice.Text))
            {
                MessageBox.Show("Số tiền không hợp lệ xin mời nhập lại");
                return false;
            }
            return true;
        }

    }
}
